<?php
class View_Code{
		/**
	 * Функция формирует категорию в тег option
	 *
	 * @param array $arrFolder - массив с именем и id категории
	 * @param int $idFolder - id папки, которую нужно выделить
	 * @param int $whitespace - кол-во пробелов перед ребёнком предыдущей категории
	 */
	private static function viewOptionForSelectFolder($arrFolder, $idFolder, $whitespace){
		$selected = '';
		$space = '';
		if ($arrFolder['ID_folder'] == $idFolder)
			$selected = 'selected';
		for ($i = 0; $i < $whitespace; $i++){
			$space .= '&nbsp;';
		}
		echo '<option ' . $selected . ' value="' . $arrFolder['ID_folder'] . '"> ' . $space . $arrFolder['name'] . '</option>';
	}
	/**
	 * Функция формирует категории языков в select со структурой
	 *
	 * @param array $arrFolder - отструктурированный массив с id и именем категории
	 * @param array $arrLanguage - массив со всеми языками
	 * @param int $idFolder - id папки, которую нужно выделить
	 * @param int $whitespace - кол-во пробелов перед ребёнком предыдущей категории
	 */
	private static function folderForeach($arrFolder, $idFolder = NULL, $whitespace = NULL){
		foreach ($arrFolder as $arFolder){
//			if ($arFolder['language_amount'] != 0) // убираем пустые папки
				self::viewOptionForSelectFolder($arFolder, $idFolder, $whitespace);
			if (isset($arFolder['children']))
				self::folderForeach($arFolder['children'], $idFolder, $whitespace + 2);
		}
	}
	/**
	 * Функцию вывода на экран сформированной структуры категорий
	 *
	 * @param array $arrFolderLanguage - массив с древовидными папками и их количеством
	 * @param array $arrLangForCurFolder - массив с языками для конкретной папки, которую нужно выделить
	 */
	public static function viewLangStructure($arrFolderLanguage, $arrLangForCurFolder = array()){
		//$arrFolderLanguage = self::getAllLanguageFolder();		
		$arrFolder = $arrFolderLanguage['arr_folder'];
		//self::hideEmptyFolder($arFolder);
		//echo '<pre>';
		//print_r($arrFolderLanguage);
		//print_r($arrLangForCurFolder);
		//echo '</pre>';
/*		foreach ($arrFolder as $arFolder){
			if ($arFolder['language_amount'] == 0)
				$arrFolderLanguage['folder_size'] = $arrFolderLanguage['folder_size'] - 1; // корректировка размера для selectа если есть пустые папки
		}*/
		$selected = '';
		if (sizeof($arrLangForCurFolder) == 0)
			$selected = 'selected';
		echo '<select id="folder_lang" name="folder" onchange="showSel(this.form);" 
		size="' . ($arrFolderLanguage['folder_size'] + 2) . '">
		<option value="0" ' . $selected . '>Выберите категорию</option>';
		$selected = ''; 
		self::folderForeach($arrFolder, $arrLangForCurFolder['ID_folder']);
		if (sizeof($arrLangForCurFolder) > 0){
			//$arrLangForCurFolder = Code::getLanguageForFolder($idFolder, $selectedLang);
			$options = $arrLangForCurFolder['options'];
			$size = $arrLangForCurFolder['size'] + 1;
			$style = '';
		}
		else {
			$size = 2;
			$options = '';
			$style = ' style="display:none"; ';
		}
		echo '</select><select id="language" name="lang" size="' . $size . '"' . $style . '>' . $options . '</select>';
	}
	/**
	 * Функция возвращает языки в тегах option для категории
	 *
	 * @param array $arrLang - массив с языками для данной папки
	 * @param int $idFolder - id категории
	 * @param int $selectedLangId - id языка, если передаётся, то папка с этим языком выделяется
	 * @return array
	 */
	public static function getLanguageForFolder($arrLang, $idFolder, $selectedLangId = NULL){
		$options = '';
		$selected = '';
		$size = sizeof($arrLang);
		foreach ($arrLang as $arrLanguage){
			if ($arrLanguage['ID_language'] == $selectedLangId)
				$selected = ' selected ';
			$options .= '<option class="folder_' . 
			$idFolder . '" value="' . $arrLanguage['ID_language'] . '" ' . 
			$selected . '>' . 
			$arrLanguage['language'] . '</option>';
			$selected = '';
		}
		return array('options' => $options, 'size' => $size, 'ID_folder' => $idFolder);
	}
	public static function hideEmptyFolderr($arrFolder, $empty = 'nonempty'){
		for ($i = 0 ;$i < sizeof($arrFolder); $i++){
			if ($arrFolder[$i]['language_amount'] == 0){
					$empty = 'empty';
					echo $empty;
			}
			if (isset($arFolder[$i]['children'])){
				$emptyChildern = self::hideEmptyFolder($arrFolder[$i]['children']);
			}
			if ($empty == 'empty' && $emptyChildern == 'empty')
				return 'empty';
			elseif ($empty == 'empty' && $emptyChildern == 'nonempty')
				return 'nonempty';
			elseif (!isset($emptyChildern))
				return $empty;	
		}
	}
	public static function hideEmptyFolder($arrFolder){
		for ($i = 0 ;$i < sizeof($arrFolder); $i++){
			self::hideEmptyFolderr($arrFolder[$i]);
		}
	}
}